/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.edu.upc.dew.proyecto.controller;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import pe.edu.upc.dew.proyecto.model.Persona;
import pe.edu.upc.dew.proyecto.service.MedicoService;
import pe.edu.upc.dew.proyecto.service.ServicioService;

/**
 *Controladora bajo plataforma Spring. Esta jala una cookie para procesar e insertar
 * los resultados de un medico. Esta controladora envía el set de resultados a
 * la pagina jsp asociada para mostrar los examenes de los paciente
 * @author Fernando
 */
public class IngresoMedico implements Controller {
   private Collection resultados= new ArrayList();
   private ServicioService servicioService;
   private MedicoService medicoService;
    /** 
     * Porcesa el request y envía una collection a la página asociada
     * llama a un objeto servicioService y envía el set.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ModelAndView mav = null;
        try {
            int coPersona=0;
            Cookie[] c = null;
            c = request.getCookies();
            if (c!=null){
                for (int i=0; i<c.length;i++){
                    if (c[i].getName().equals("JSESSIONID")){
                        coPersona = Integer.parseInt(c[i].getComment());
                    }
                }
            }

           // int coPersona = Integer.parseInt(request.getParameter("copersona"));

            resultados = servicioService.seleccionarResultadosMedico(coPersona);
            Persona persona = (Persona) medicoService.getMedicoPorCodigo(coPersona) ;
            mav = new ModelAndView("resultadosMedico", "resultados", resultados);
            mav.addObject("persona", persona);
        }
        catch(Exception ex){
            Logger.getLogger(IngresoServlet.class.getName()).log(Level.SEVERE, null, ex);
        }
        finally {
            
        }
        return mav;
    } 

    public void setServicioService(ServicioService servicioService){
        this.servicioService = servicioService;
    }
    public Collection getResultados() {
        return resultados;
    }

    public void setResultados(Collection resultados) {
        this.resultados = resultados;
    }
    public void setMedicoService(MedicoService medicoService){
        this.medicoService = medicoService;
    }
}
